Conventional simulation systems are unable to scale to support very large numbers of objects to simulate those objects in real-time. Such systems have typically relied on a single instance of a simulation engine, running on a single physical or virtual computer system, to simulate the entire simulated world. Consumers of these simulation systems have had to choose between correctness, graphical fidelity, and real-time-interaction, with no solution offering the ability for all three on a large scale system. The magnitude and complexity of the situation is further increased if the consumer desires to simulate complex real-world problems which may require more computing power than a single simulation engine can provide. For example, a simulation of a city may require simulation of a large number of vehicles, pedestrians, bicyclists, traffic patterns, traffic lights, subway systems, transit vehicles, airplanes, and a multitude of other entities that affect and contribute to city life.
In one known approach, computing resources have been statically assigned to a portion of the simulated world. A disadvantage of this approach may be that as the simulated objects, actors, etc. move across the simulated world as the simulation progresses, the simulated objects may congregate on a very small region of the simulated world. If sufficient objects move to the very small region, the computing resources may be overloaded (resulting in slower processing), the simulation may terminate unexpectedly, and/or simulation data may be lost. Another disadvantage of this approach may be that state information of the simulation for a region may be concentrated on a single computing resource and may not be shared or spread across several resources, making fault tolerance or recovery from an unexpected termination difficult and time-consuming. In addition, this approach may not lend itself to easily support stateful migration of simulated objects across region boundaries, and thus simulations usually limit stateful migrations to only players.
These and other problems are addressed herein.